package com.ticket.system.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ticket.common.annotation.Excel;
import com.ticket.common.core.domain.BaseEntity;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * 场次价格对象 yanchu_ticket_price
 * 
 * @date 2023-09-27
 */
@ApiModel(description = "场次价格对象")
public class YanchuTicketPrice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 价格编号 */
    private Long id;

    /** 演出编号 */
    @Excel(name = "演出编号")
    @NotNull(message = "演出编号不可以为空")
    @ApiModelProperty(value = "演出编号")
    private Long performId;

    /** 场次编号 */
    @Excel(name = "场次编号")
    @NotNull(message = "场次编号不可以为空")
    @ApiModelProperty(value = "场次编号")
    private Long sessionId;

    /** 颜色 */
    @Excel(name = "颜色")
    @NotNull(message = "颜色不可以为空")
    @ApiModelProperty(value = "颜色")
    @Size(min = 1, max = 10, message = "颜色长度不能超过10个字符")
    private String color;

    /** 是否有优惠 */
    @Excel(name = "是否有优惠")
    private Integer hasPromotion;

    /** 优惠内容 */
    @Excel(name = "优惠内容")
    private Integer textPromotion;

    /** 显示内容 180元 */
    @Excel(name = "显示内容 180元")
    @NotNull(message = "票档名称不可以为空")
    @Size(min = 1, max = 20, message = "票档名称长度不能超过20个字符")
    private String title;

    /** 价格 */
    @Excel(name = "价格")
    @NotNull(message = "价格不可以为空")
    @ApiModelProperty(value = "价格")
    @Size(min = 1, max = 5, message = "价格长度不能超过5个字符")
    private BigDecimal salePrice;

    /** 座位[{"areaId":1,"seats":{"row":1,"seats":"1,3,5"},{"row":2,"seats":"2"}}] */
    @Excel(name = "座位[{\"areaId\":1,\"seats\":[{\"row\":1,\"seatNo\":\"1,3,5\",\"col\":\"26,25,24\"},{\"row\":2,\"seatNo\":\"2,4\",\"col\":\"27,28\"}]}]")
    private String seats;

    /** 是否可售 */
    @Excel(name = "是否可售")
    private Integer salable;

    @ApiModelProperty(value = "简介")
    private String remark;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPerformId(Long performId) 
    {
        this.performId = performId;
    }

    public Long getPerformId() 
    {
        return performId;
    }
    public void setSessionId(Long sessionId) 
    {
        this.sessionId = sessionId;
    }

    public Long getSessionId() 
    {
        return sessionId;
    }
    public void setColor(String color) 
    {
        this.color = color;
    }

    public String getColor() 
    {
        return color;
    }
    public void setHasPromotion(Integer hasPromotion) 
    {
        this.hasPromotion = hasPromotion;
    }

    public Integer getHasPromotion() 
    {
        return hasPromotion;
    }
    public void setTextPromotion(Integer textPromotion) 
    {
        this.textPromotion = textPromotion;
    }

    public Integer getTextPromotion() 
    {
        return textPromotion;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setSalePrice(BigDecimal salePrice)
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice()
    {
        return salePrice;
    }
    public void setSeats(String seats) 
    {
        this.seats = seats;
    }

    public String getSeats() 
    {
        return seats;
    }
    public void setSalable(Integer salable) 
    {
        this.salable = salable;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getSalable()
    {
        return salable;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("performId", getPerformId())
            .append("sessionId", getSessionId())
            .append("color", getColor())
            .append("hasPromotion", getHasPromotion())
            .append("textPromotion", getTextPromotion())
            .append("title", getTitle())
            .append("salePrice", getSalePrice())
            .append("seats", getSeats())
            .append("salable", getSalable())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
